In [1]:
from pathlib import Path
from ipyniivue import download_dataset
# GitHub API URL for the base folder
BASE_API_URL = "https://niivue.com/demos/images/"
DATA_FOLDER = Path("images")
# Download data for example
download_dataset(
BASE_API_URL,
DATA_FOLDER,
files=[
"mni152.nii.gz",
"hippo.nii.gz",
],
)
mni152.nii.gz already exists. hippo.nii.gz already exists. Dataset downloaded successfully to images.
In [2]:
import ipywidgets
from ipyniivue import NiiVue, SliceType, WidgetObserver
volumes = [
{
"path": DATA_FOLDER / "mni152.nii.gz",
"colormap": "gray",
"opacity": 1.0,
},
{
"path": DATA_FOLDER / "hippo.nii.gz",
"colormap": "red",
"opacity": 1.0,
},
]
nv = NiiVue(slice_type=SliceType.MULTIPLANAR)
nv.load_volumes(volumes)
widgetArray = []
widget_slice_type = {
"widget": ipywidgets.RadioButtons(
options=[
("Axial", 0),
("Coronal", 1),
("Sagittal", 2),
("Multiplanar", 3),
("Render", 4),
],
value=3,
description="Slice Type:",
),
"obj": nv.opts,
"attribute": "slice_type",
}
widgetArray.append(widget_slice_type)
widget_scan_opacity = {
"widget": ipywidgets.FloatSlider(
value=1.0,
min=0.0,
max=1.0,
step=0.1,
description="Scan Opacity:",
orientation="horizontal",
),
"obj": nv.volumes[0],
"attribute": "opacity",
}
widgetArray.append(widget_scan_opacity)
widget_hippo_opacity = {
"widget": ipywidgets.FloatSlider(
value=1.0,
min=0.0,
max=1.0,
step=0.1,
description="Hippocampus Opacity:",
orientation="horizontal",
),
"obj": nv.volumes[1],
"attribute": "opacity",
}
widgetArray.append(widget_hippo_opacity)
widget_scan_colormap = {
"widget": ipywidgets.Select(
options=["Gray", "Red", "Blue", "Green"],
value="Gray",
description="Scan Colormap:",
),
"obj": nv.volumes[0],
"attribute": "colormap",
}
widgetArray.append(widget_scan_colormap)
widget_hippo_colormap = {
"widget": ipywidgets.Select(
options=["Red", "Blue", "Green", "Gray"],
value="Red",
description="Hippocampus Colormap:",
),
"obj": nv.volumes[1],
"attribute": "colormap",
}
widgetArray.append(widget_hippo_colormap)
for widget in widgetArray:
WidgetObserver(**widget)
display(nv)
for widget in widgetArray:
display(widget["widget"])